<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>几种方式改变this指向</title>
</head>
<body>
    <script>
        let hd = {
            site : "xiasnn爱",
            lesson : ['html','css','js'],
            // 方法
            show :function(){
                // map内部的函数为函数,this指向windows，要改变指向

                // 方法一（常规方法）
                // let self = this;
                // return this.lesson.map(function(value){
                //     return `${self.site}${value}`;
                // });

                // 方法二（map方法中，第二参数传的值，就是其内部函数this指向的值，所以可以把this放到map方法的第二个参数中）
                // return this.lesson.map(function(value){
                //     return `${this.site}${value}`;
                // },this);

                // 方法三（箭头函数），箭头函数中的this指向其父级作用域中的this指向
                return this.lesson.map(value => `${this.site}${value}`);
            }
        };
        console.log(hd.show());
    </script>
</body>
</html>